home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / R-Shows / (c)woc x 92a.d64 / funct machine.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  6KB  |  208 lines

  1. 3 POKE56,127:POKE56576,149:POKE53272,4:POKE648,128:POKE792,116:POKE793,164:CLR
  2. 5 POKE53280,9:POKE53281,9
  3. 11 PRINT"[147][158]      [207][183][167]  [165][167][205] [165] [206][163]  [183][207] [167]  [206][205] [167][205] [165]
  4. 12 [153]"      (null) THEN  FNTHEN (null)FN (null)TO   FN THEN  (null)(null) THEN (null)FN
  5. 13 PRINT"         [163][163]                  [164][164]
  6. 14 [153]"      THEN(null)(null)FN (null)(null)  (null)TAB(  (null)SQR THEN THEN(null) FN (null)
  7. 15 PRINT"      [167]  [165] [207][208]  [205][164]  [207][208] [167] [167] [205][165] [204][175]
  8. 20 [153],"DEF       BY
  9. 25 PRINT,"    PETE ROWE
  10. 30 [153]"SYS     ADAPTED FOR THE COMMODORE 64
  11. 32 PRINT,"      BY
  12. 34 [153],"DEFSTEVEN DARNOLD
  13. 36 PRINT,"P.O. BOX 201
  14. 38 [153],"ALEXANDRA, NEW ZEALAND";
  15. 40 [129]I[178]1[164]4000:[130]
  16. 50 [153]"LOADSYSYOU HAVE JUST DISCOVERED A STRANGE
  17. 52 PRINT"MACHINE.  IT TAKES NUMBERS, CHEWS THEM
  18. 54 [153]"UP AND SPITS THEM OUT.  THE NUMBERS THAT
  19. 56 PRINT"COME OUT ARE VERY DIFFERENT FROM THE
  20. 58 [153]"NUMBERS THAT GO IN."
  21. 60 [153]"DEFHOWEVER, THE MACHINE IS NOT RANDOM.
  22. 65 PRINT"IT USES A RULE TO PROCESS THE NUMBERS."
  23. 67 PRINT"[158]YOUR MISSION IS TO FIGURE OUT THE RULE
  24. 70 [153]"SO THAT YOU CAN PREDICT WHAT THE MACHINE
  25. 72 PRINT"WILL DO.":GOSUB4000
  26. 75 PRINT"[147][150]YOU WIN WHEN YOU MAKE THREE CORRECT
  27. 77 [153]"PREDICTIONS IN A ROW.  THE MACHINE WILL
  28. 80 PRINT"THEN START AGAIN WITH A DIFFERENT RULE.":GOSUB4000:POKE53265,11
  29. 100 DIM A$(2),B$(13),C$(3),R$(15),M(20)
  30. 105 F=1:Z=0:VL=-1
  31. 110 A$(0)="   [145] [157][157][157][157][157][157][209][145][206][145][206][205][205][215][145][145]"
  32. 120 A$(1)=" [145]   [145][145][157][157][157][157][157][157][157][215][192][192][174][176][192][192][209]"
  33. 130 A$(2)="      [157][157][157][157][157][157][157][145][145][209][205][205][206][145][206][145][215]"
  34. 140 D$=""
  35. 145 E$=""
  36. 148 F$=""
  37. 150 B$(0)="  [157][157]  [157][157]  [157][157]  [157][157] [215]"
  38. 160 B$(1)="  [157][157]  [157][157]  [157][157] [215][157][157][213][201]"
  39. 170 B$(2)="  [157][157]  [157][157] [215][157][157][213][201][157][157][202][203]"
  40. 180 B$(3)="  [157][157] [215][157][157][213][201][157][157][202][203][157][157][215] "
  41. 190 B$(4)=" [215][157][157][213][201][157][157][202][203][157][157][215] [157][157] [215]"
  42. 200 B$(5)="[213][201][157][157][202][203][157][157][215] [157][157] [215][157][157][213][201]"
  43. 210 B$(6)="[202][203][157][157][215] [157][157] [215][157][157][213][201][157][157][202][203]"
  44. 220 B$(7)="[215] [157][157] [215][157][157][213][201][157][157][202][203][157][157][215] "
  45. 230 B$(8)=" [215][157][157][213][201][157][157][202][203][157][157][215] [157][157] [215]"
  46. 240 B$(9)="[213][201][157][157][202][203][157][157][215] [157][157] [215][157][157]  "
  47. 250 B$(10)="[202][203][157][157][215] [157][157] [215][157][157]  [157][157]  "
  48. 260 B$(11)="[215] [157][157] [215][157][157]  [157][157]  [157][157]  "
  49. 270 B$(12)=" [215][157][157]  [157][157]  [157][157]  [157][157]  "
  50. 280 B$(13)="  [157][157]  [157][157]  [157][157]  [157][157]  "
  51. 290 C$(0)=" [157][190][157][157][190][157][157] [157][157][188][157][157][190][157][157] [157][157][188][157][157][190][157][157][145] [157][145][172][145][172] [187][172] [187][172]"
  52. 300 C$(1)="[190][157][187][157][157] [157][157][188][157][157][190][157][157] [157][157][188][157][157][190][157][157] [157][157][145][172][157][145][188][145] [187][172] [187][172] "
  53. 310 C$(2)="[187][157] [157][157][188][157][157][190][157][157] [157][157][188][157][157][190][157][157] [157][157][188][157][157][145][188][157][145] [145][187][172] [187][172] [187]"
  54. 320 C$(3)=" [157] [157][157] [157][157] [157][157] [157][157] [157][157] [157][157] [157][157] [157][157][145] [157][145] [145]       "
  55. 330 FORJ=1TO39:S$=S$+" ":NEXT
  56. 340 R$(1)="NUMBER PLUSX "
  57. 350 R$(2)="NUMBER PLUSY "
  58. 360 R$(3)=" X TIMES NUMBER"
  59. 370 R$(4)=" Y TIMES NUMBER"
  60. 380 R$(5)=R$(4)+" PLUSX "
  61. 390 R$(6)=R$(4)+" MINUSX "
  62. 400 R$(7)="NUMBER TIMES NUMBER PLUSY "
  63. 410 R$(8)="NUMBER TIMES NUMBER MINUSY "
  64. 420 R$(9)="NUMBER TIMES NUMBER PLUS NUMBER"
  65. 430 R$(10)=" X * NUMBER * NUMBER +Y "
  66. 440 R$(11)=" X * NUMBER * NUMBER -Y "
  67. 450 R$(12)=" X * NUMBER * NUMBER + NUMBER"
  68. 460 R$(13)="(NUMBER - 1) /X "
  69. 470 R$(14)=" Y * (NUMBER /X ) "
  70. 480 R$(15)="(NUMBER /X) -Y "
  71. 500 POKE53281,8:PRINT"[129][147]   [146][157][157][157][223] [146][169][157][157][157]";:POKE53281,9
  72. 510 PRINT"[167] [146][165][157][157][157][167] [146][165][157][157][157][167][160][146][165][157][157][157]";
  73. 520 PRINT"[167] [146][165][157][157][157][167] [146][204][157][157][157][167]  [146][157][157][163]";
  74. 530 PRINT"[163][145][145][164][157] [146][157][163][145][145][164][157] [146][157][163][145][145]";
  75. 540 PRINT"[164][157] [146][157][163][145][145][186][157] [146]";
  76. 550 PRINT"[157][208][157][145][145][145][167][145][164][164][144][186][204][157][157][145][167][165][157][157][145][144][167][165][157][157][145][129]";
  77. 560 PRINT"[144][206][205][157][157][157][206][205][157][157][157][157][157][215][209][157][157][129][164][164]";
  78. 570 PRINT"[164][164][186][166][204][157][157][157][145][167][166][165][157][157][157][145][167][166][165][157][157][157][145][167][166][165][165][157][165][157]";
  79. 580 PRINT"[156] [146][161][157][145][213][192][201][157][221][157][203][157][157][192][157][157][202][129][157][157][165][157][165]";
  80. 590 PRINT"[157][223][157] [223][157][157][146][223] [223][157][157][146][223] [223][157][157][146]";
  81. 600 PRINT"[223][169][157][157][157][157][145][165][157][157][163][157][157][163][157][157][163][157][157][163][157][157][163][157][157][163][157][157]";
  82. 610 PRINT"[163][157][157][163][157][157][163][157][157][163][157][157][163][157][157][145][167][157][145][167][157][145][167][157][145][167][157][145][167]";
  83. 620 PRINT"[145][145][213][201][213][192][201][213][201][157][157][157][157][157][157][157][202][203][202][192][203][202][203][129]";
  84. 630 PRINT"[157][157][157][157][157][157][157]ON  OFF[129][146]";
  85. 640 PRINT"[158][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145]IN [221] OUT";
  86. 650 PRINT"[158][157][157][157][157][157][157][157][157][157][192][192][192][192][219][192][192][192][192][157][157][157][157][157][157][157][157][157][157][157][157]";:POKE53265,27
  87. 660 FORJ=1TO17:PRINT"       [221][160]      [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";:NEXT
  88. 670 W=1
  89. 680 PRINT"";F$;"HOW DIFFICULT (1=EASY...5=HARD)?      [157][157][157][157][157]";
  90. 690 GOSUB 2500:V=VAL(N$)-1
  91. 700 IF V*(V-1)*(V-2)*(V-3)*(V-4)<>0THEN 680
  92. 710 A=INT(3*RND(1)+2):B=INT(10*RND(1)+3)
  93. 720 X=3*V+INT(3*RND(1))+1:IF V=X THEN 720
  94. 725 V=X
  95. 730 ONVGOSUB3000,3010,3020,3030,3040,3050,3060,3070,3080
  96. 735 IFV>9THENON(V-9)GOSUB3090,3100,3110,3120,3130,3140
  97. 740 PRINT"";F$;S$
  98. 750 PRINT"[158]->      [157][157][157][157][157][157]";:GOSUB 2500
  99. 760 IF W=1 AND N$="R" THEN 750
  100. 770 IF N$="R" THEN 3495
  101. 780 L=LEN(N$):X=VAL(N$):H$=N$
  102. 790 IF W=1 THEN 900
  103. 800 FORJ=1TOW-1:IF X=M(J) THEN 820
  104. 810 NEXT:GOTO 870
  105. 820 H=32874+40*J:FORJ=HTOH+13
  106. 830 POKE J,PEEK(J)+128:NEXT:T=TI
  107. 840 IF TI-T<150 THEN 840
  108. 850 FOR J=HTOH+13:POKE J,PEEK(J)-128
  109. 860 NEXT:GOTO 750
  110. 870 PRINT"";F$;"[158]GUESS WHAT'LL COME OUT: ";
  111. 880 GOSUB 2500:IF N$="R" THEN 3490
  112. 890 Y1=VAL(N$)
  113. 900 PRINT D$;"ON[129]  OFF"
  114. 910 R=0:C=-1:Q=1:P=0:N$=H$
  115. 920 PRINT"";LEFT$(F$,W);SPC(32-L);N$
  116. 1000 C=C+1+((C=8)*4)*Q
  117. 1010 F=1-F:R=(R+1)*-(R<>2)
  118. 1040 PRINT"[144]";A$(R);"[145][145][145][145][145][145][155]";B$(C);"[157][157][157][129]";
  119. 1050 IF F=0 THEN PRINT"    ";
  120. 1060 IF F=1 THEN PRINT"[167][166][165]*[129]";
  121. 1070 IF P>14 THEN PRINT"[157][157][157][157][157]";C$(R);"[129]";
  122. 1080 IF C=13 THEN 2000
  123. 1090 IF C>8 AND R=0 THEN R=2
  124. 1100 IF P<>19 THEN 1150
  125. 1110 Y=FNA(X):N$=STR$(Y):L=LEN(N$)
  126. 1120 FORJ=1TOL:IFMID$(N$,J,1)="E"THEN N$=" ?????":L=6:GOTO1150
  127. 1130 NEXTJ:IFL>6THEN N$=LEFT$(N$,6):L=6
  128. 1150 IF P-L=19 THEN Q=0:PRINT D$;"[129]ON  OFF[129]";
  129. 1160 IF P<L+2 THEN POKE 32890+L-P,32
  130. 1200 P=P+1:PRINT LEFT$(D$,P+9);"";
  131. 1205 IF P>20 THEN PRINT LEFT$(E$,2*P-26);
  132. 1210 FOR J=1 TO L:I=P-J:I$=MID$(N$,L-J+1,1)
  133. 1220 IF (I<0 OR I>23)OR(I>12 AND I<21) THEN 1260
  134. 1230 PRINT I$;
  135. 1240 IF I<8 THEN PRINT"[145][157]";
  136. 1250 IF I>7 THEN PRINT"[157][157]";
  137. 1255 IF I>21 THEN PRINT"[145]";
  138. 1260 IF I=24 THEN POKE 33635-J,ASC(I$)
  139. 1265 NEXT
  140. 1270 IF I>0 AND I<15 OR I>21 THEN PRINT " ";
  141. 1280 PRINT "[146]";:GOTO 1000
  142. 2000 PRINTD$;"";C$(3)
  143. 2010 FOR J=33626TO33634:POKEJ,32:NEXT
  144. 2020 PRINT"";LEFT$(F$,W);SPC(34);N$
  145. 2025 I$=STR$(Y1):IF LEN(I$)>6THEN I$=LEFT$(I$,6)
  146. 2030 IF I$<>N$ OR W=1 THENZM=0:GOTO2100
  147. 2040 N=60:FOR J=0 TO 5:T=TI
  148. 2050 IF TI-T<18 THEN 2050
  149. 2060 REM N=113-N:POKE 59409,N:NEXT
  150. 2061 N=113-N:NEXT
  151. 2070 PRINT"";F$;"";
  152. 2080 PRINT"CORRECT":T=TI:ZM=ZM+1:IFZM=3THENW=16
  153. 2090 IF TI-T<140 THEN 2090
  154. 2100 PRINT"";F$;S$:M(W)=X:W=W+1
  155. 2110 IF W<17 THEN PRINT"";TAB(31);:GOTO 750
  156. 2120 GOTO 3500
  157. 2500 GET I$:IF I$<>""THEN 2500
  158. 2510 N$=" ":I=0:J=0:H=0
  159. 2520 T=TI
  160. 2530 GET I$:IF I$="" AND TI-T<20 THEN 2530
  161. 2540 Z=18-Z:PRINTCHR$(Z);" [146][157]";
  162. 2545 IF I$="" THEN 2520
  163. 2550 IF I$=CHR$(13) AND N$<>" " THEN 2680
  164. 2560 IF I$="R" THEN N$=" ":GOTO 2670
  165. 2570 IF I$="Q" THEN H=1:GOTO 2520
  166. 2580 IF I$="E" THEN H=H-(H=1):GOTO 2520
  167. 2590 IF I$="D" AND H=2 THEN STOP:REM SYS(845)
  168. 2600 H=0:IF I=0 AND I$="-" THEN 2670
  169. 2610 IF I$>"/" AND I$<":" THEN 2670
  170. 2620 IF J=0 AND I$="." THEN J=1:GOTO 2670
  171. 2630 IF I$<>CHR$(20) THEN 2520
  172. 2640 IF N$<>" " THEN N$=LEFT$(N$,LEN(N$)-1):PRINT"[157]  [157][157]";
  173. 2650 IF N$=" " THEN 2510
  174. 2660 GOTO 2520
  175. 2670 N$=N$+I$:PRINTI$;:I=1:IF LEN(N$)<7THEN 2520
  176. 2680 PRINT" ";:N$=RIGHT$(N$,LEN(N$)-1):RETURN
  177. 3000 DEF FNA(X)=X+A:RETURN
  178. 3010 DEF FNA(X)=X+B:RETURN
  179. 3020 DEF FNA(X)=A*X:RETURN
  180. 3030 DEF FNA(X)=B*X:RETURN
  181. 3040 DEF FNA(X)=B*X+A:RETURN
  182. 3050 DEF FNA(X)=B*X-A:RETURN
  183. 3060 DEF FNA(X)=X*X+B:RETURN
  184. 3070 DEF FNA(X)=X*X-B:RETURN
  185. 3080 DEF FNA(X)=X*X+X:RETURN
  186. 3090 DEF FNA(X)=A*X*X+B:RETURN
  187. 3100 DEF FNA(X)=A*X*X-B:RETURN
  188. 3110 DEF FNA(X)=A*X*X+X:RETURN
  189. 3120 DEF FNA(X)=(X-1)/A:RETURN
  190. 3130 DEF FNA(X)=B*(X/A):RETURN
  191. 3140 DEF FNA(X)=(X/A)-B:RETURN
  192. 3490 PRINT"        ";
  193. 3495 PRINT"[157][157][157][157]          ";
  194. 3500 PRINT"";F$;"[129][145]THE RULE IS:"
  195. 3510 I$=R$(V):J=1
  196. 3520 IF MID$(I$,J,1)="X"THEN N=A:GOTO 3550
  197. 3530 IF MID$(I$,J,1)<>"Y"THEN 3560
  198. 3540 N=B
  199. 3550 I$=LEFT$(I$,J-1)+STR$(N)+RIGHT$(I$,LEN(I$)-J)
  200. 3560 J=J+1:IF J<=LEN(I$) THEN 3520
  201. 3570 PRINT S$;"[157][145]":PRINTI$:T=TI
  202. 3580 GET I$:IF I$<>"" THEN 3580
  203. 3590 GET I$:IF I$="" AND TI-T<400 THEN 3590
  204. 3600 PRINT"";F$;"[145]";S$
  205. 3610 PRINT"";S$;"[157][145]";:GOTO 650
  206. 4000 PRINT"[155]PRESS SHIFT[146][145][157][157][157][157][157][164][164][164][164][164] TO CONTINUE.";
  207. 4002 WAIT653,1,1:WAIT653,1:RETURN
  208.